package edu.zut.dao;


import edu.zut.pojo.UserInfo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * 视为数据层接口
 * 1、接口+ xml  （关联查询）
 * 2、接口+注解  （简单查询）
 */
@Mapper
public interface UserInfoMapper {

    List<UserInfo> queryInfos();

    UserInfo queryById(Integer id);

    UserInfo queryByEmailAndPsw(@Param("mail") String email, @Param("psw") String password);

    List<UserInfo> queryByInfo(UserInfo userInfo);

    List<UserInfo> queryByMap(Map<String,Object> map);

    //map返回值  key就是字段名  value就是值
    Map<String,Object> queryById2(Integer id);

    int updateInfo(UserInfo userInfo);

    /*@Select    @Delete()   @update   @insert*/
    @Select("select * from user_info where fullName like concat ('%',#{fullName},'%')")
    List<UserInfo> queryLikeName(String name);

    @Delete("delete from userf_info where id = #{id}")
    int deleteInfo(Integer id);


    List<UserInfo> queryInfos2();


    List<UserInfo> queryByCondition(UserInfo userInfo);

    int updateByCondition(UserInfo userInfo);
    //根据id批量操作
    List<UserInfo> queryByIds(List<Integer> ids);

    //根据用户的id查询用户的信息以及用户购买的商品信息
    UserInfo queryInfoAndItems(Integer id);

    UserInfo queryByEmail(String mail);

}
